package com.kotlin

/**
 * Lambda表达式学习
 * @author huan.fu
 * @date 2019-03-09 - 19:44
 */

// 定义一个 Lambda 表达式
var sum = { num1: Int, num2: Int ->
    println("$num1 + $num2 = ${num1 + num2}")
    // 最后一行为 Lambda 表达式的返回值
    num1 + num2
}

var printlnHello = println("hello")

/**
 * 方法中带有 Lambda 表达式的
 */
fun handleCalcResult(num1: Int, num2: Int, consumer: (Int) -> Long): Long {
    return consumer(num1 + num2)
}

fun main(args: Array<String>) {
    // lambda 表达式调用
    println(sum(1, 2))
    println(sum.invoke(1, 3))

    args.forEach(::println)

    handleCalcResult(1, 3) { result ->
        println(result)
        (result + 10).toLong()
    }

}


